MIME Types
Here are some commonly used MIME types in frontend development:
Text
text/html- HTML documentstext/plain- Plain texttext/css- CSS stylesheetstext/csv- CSV filestext/javascript- JavaScript (obsolete, useapplication/javascriptinstead)
Application
application/javascript- JavaScriptapplication/json- JSON dataapplication/xml- XML dataapplication/pdf- PDF documentsapplication/zip- ZIP archivesapplication/x-www-form-urlencoded- Form dataapplication/octet-stream- Binary dataapplication/wasm- WebAssembly
Image
image/jpeg- JPEG imagesimage/png- PNG imagesimage/gif- GIF imagesimage/svg+xml- SVG vector imagesimage/webp- WebP imagesimage/x-icon- ICO format
Font
font/woff- Web Open Font Format (WOFF)font/woff2- Web Open Font Format 2 (WOFF2)font/ttf- TrueType Fontfont/otf- OpenType Font
Audio/Video
audio/mpeg- MP3 audioaudio/ogg- OGG audioaudio/wav- WAV audiovideo/mp4- MP4 videovideo/webm- WebM videovideo/ogg- OGG video
Multipart
multipart/form-data- Form data with file uploadsmultipart/byteranges- Partial content
These MIME types are essential for proper content handling in web applications.
特别注意
multipart/form-data
multipart/form-data 顾名思义,的设计初衷就是为了处理表单数据,特别是当表单中需要上传文件或包含不同类型的数据时。使用一个唯一的边界字符串(boundary)来分隔不同的部分。边界字符串在请求头中定义,例如:Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryXxYyZz。
为什么选择 multipart/form-data?
- 灵活性:可以同时传输文本字段和文件。
- 效率:对于二进制数据,避免了不必要的编码/解码开销。
- 兼容性:被所有现代浏览器和服务器广泛支持。
multipart/form-data 主要用于以下场景:
-
文件上传:当需要上传文件时,必须使用
multipart/form-data编码类型。这是最常见的用途,比如用户上传头像、文档、图片等。 -
表单包含文件输入:当 HTML 表单中包含
<input type="file">元素时,表单的enctype属性必须设置为multipart/form-data。 -
二进制数据提交:当需要提交二进制数据(如图片、视频、PDF 等)时,使用
multipart/form-data可以确保数据在传输过程中不会被错误地编码或损坏。 -
混合数据提交:当需要同时提交文本字段和文件时,
multipart/form-data可以有效地处理这种混合数据。 -
大文件上传:对于大文件上传,
multipart/form-data支持分块传输,可以更高效地处理大文件。
示例
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="text" name="description" placeholder="文件描述" />
<input type="file" name="file" id="file" />
<button type="submit">上传</button>
</form>
与 application/x-www-form-urlencoded 的区别
application/x-www-form-urlencoded:适用于简单的键值对数据,所有字符都会进行 URL 编码,不适合传输二进制数据。multipart/form-data:适用于文件上传和混合数据,不会对二进制数据进行编码,适合传输大文件和二进制数据。
前端在进行分片上传的时候会使用 multipart/form-data。